package com.seecen.HJM.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.seecen.HJM.model.dto.ArtistAddDTO;
import com.seecen.HJM.model.dto.ArtistDTO;
import com.seecen.HJM.model.dto.ArtistUpdateDTO;
import com.seecen.HJM.model.entity.Artist;
import com.seecen.HJM.model.vo.ArtistDetailVO;
import com.seecen.HJM.model.vo.ArtistNameVo;
import com.seecen.HJM.model.vo.ArtistVo;
import com.seecen.HJM.result.DataVo;
import com.seecen.HJM.result.PageResult;
import jakarta.servlet.http.HttpServletRequest;

import java.util.List;

/**
 * @author jiachen
 * @description 针对表【tb_artist】的数据库操作Service
 * @createDate 2025-09-26 14:09:01
 */
public interface ArtistService extends IService<Artist> {
    //获取所有歌手
    DataVo<PageResult<ArtistVo>> getAllArtists(ArtistDTO artistDTO);
    //获取随机歌手
    DataVo<List<ArtistVo>> getRandomArtists();
    //根据id获取歌手详情
    DataVo<ArtistDetailVO> getArtistDetail(Long artistId, HttpServletRequest request);


    // 获取所有歌手id和名字
    DataVo<List<ArtistNameVo>> getAllArtistNames();
    // 添加歌手
    DataVo addArtist(ArtistAddDTO artistAddDTO);

    // 更新歌手
    DataVo updateArtist(ArtistUpdateDTO artistUpdateDTO);

    // 更新歌手头像
    DataVo updateArtistAvatar(Long artistId, String avatar);

    // 删除歌手
    DataVo deleteArtist(Long ArtistId);

    // 批量删除歌手
    DataVo deleteArtists(List<Long> artistIds);

    DataVo<PageResult<Artist>> getAllArtistsAndDetail(ArtistDTO artistDTO);
}
